1. Field of the Invention
The present invention is a method and a device of detecting an erroneous sequence number in a status report unit in a wireless communications system, in particular a method of effectively detecting a status report unit comprising the erroneous sequence number and activating a reset mechanism at an appropriate time, and a device implementing the method.
2. Description of the Prior Art
With the coming of the information age, requirements of mobile voice, data communications, and various mobile services increase each day. Communications systems of prior art are facing bottlenecks of channel usage overflowing and inefficient transmission speeds. Therefore, the third generation mobile communication was developed to have better usage of the frequency spectrum and higher-speed transmission service. Compared to the existing second generation mobile communication technology, the most significant difference with the third generation mobile communication is that the third generation mobile communication uses a Wideband Code Division Multiple Access (WCDMA) protocol for wireless access. The WCDMA protocol provides a more efficient channel usage, outstanding coverage, and high quality, high-speed multimedia data transmission. The WCDMA protocol can satisfy different service requirements of QoS, provide flexible duplex transmission services, and also better communication quality.
Taking a specification set by the 3rd Generation Partnership Project (3GPP), the 3rd generation mobile communications system can provide different levels of transmission quality and operates in different modes according to the different requirements, for instance, Transparent Mode (TM), Unacknowledged Mode (UM), Acknowledged Mode (AM). TM is used for services requiring instant transmission, UM is used for services requiring instant transmission as well as packet orders, and AM is used for robust services requiring data accuracy but not instant transmission.
In AM, for better data accuracy and robustness, Radio Link Control (RLC) layers of a transmitter and a receiver initiate a status report procedure at an appropriate time to have the receiver transmit a status report unit, or a piggybacked status report unit to the transmitter. The transmitter then executes procedures followed according to the status report unit from the receiver.
For more efficient transmission, under the AM, the transmitter defines status variables below:
1. Variable VT(S): represents a Sequence Number (SN) of a next Protocol Data Unit (PDU) to be transmitted for a first time (i.e. excluding retransmitted PDUs). The variable is updated after corresponding PDUs are transmitted. An initial value of the variable is 0.
2. Variable VT(A): represents an SN of a next expected acknowledged PDU, meaning the SN following an SN of a last in-sequence acknowledged PDU. The variable is updated after a status report unit showing the expected PDU had been positively acknowledged.
According to the variables VT(S) and VT(A), the RLC layer is able to detect whether an SN in a status report unit is correct. Please see the description below.
With the specification defined by the 3GPP, in AM, an SN of a PDU is represented by 12 bits. If a status report unit (or a piggybacked status report unit) comprises an erroneous SN, meaning when a negatively acknowledged SN in the status report unit (or the piggybacked status report unit) does not agree with VT(A)≦SN≦VT(S)−1, an RLC reset procedure will be initiated to recover the error. Comparisons between SNs are done by modulus operations with VT(A) as a modulus base. With the base=VT(A) and a negatively acknowledged SN x, determination is made whether x lies outside an interval {x|(VT(A)−base) mod 4096≦(x−base) mod 4096≦(VT(S)−1−base) mod 4096}, in order to detect whether any erroneous SN is contained in the status report unit.
For example, in AM, suppose that a transmitter has transmitted PDUs with SN=0 to SN=249 (inclusive) and the PDUs with SN=0 to SN=199 (inclusive) are positively acknowledged. From definitions of the status variables, it is known that VT(A)=200, and VT(S)=250. Assuming a protocol error occurs and makes a status report unit received by a receiver show a PDU with SN=300 is negatively acknowledged when in fact, the transmitter may have not yet transmitted the PDU with SN=300. Now with a modulus base=200, check if
{x|(VT(A)−base) mod 4096≦(x−base) mod 4096≦(VT(S)−1−base) mod 4096}
={x|(200−200) mod 4096≦(x−200) mod 4096≦(250−1−200) mod 4096}
={x|0≦(x−200) mod 4096≦49}
Since the SN=300 is not inside a set {x|0≦(x−200) mod 4096≦49}, the status report unit transmitted from a receiver comprising an erroneous SN is detected. Thereafter, the RLC layer initiates a reset procedure to recover this kind of error.
From the above descriptions of the prior art, when a negatively acknowledged SN of a status report unit and the SN lies outside a set {x|(VT(A)−base) mod 4096≦(x−base) mod 4096≦(VT(S)−1−base) mod 4096}, the prior art is able to detect an erroneous SN in the status report unit. However, when VT(A)=VT(S), meaning an SN of a next PDU to be transmitted for a first time equals an SN of a next expected acknowledged PDU, problems will occur in the above detection method.
For example, in AM, suppose that a transmitter has transmitted PDUs with SN=0 to SN=199 (inclusive) and the PDUs are all positively acknowledged. From definitions of the status variables, it is known that VT(A)=VT(S)=200. Assuming a protocol error occurs and makes a status report unit received by a receiver show a PDU with SN=300 is negatively acknowledged when in fact, the transmitter may have not yet transmitted the PDU with SN=300. Now with a modulus base=200, check if
{x|(VT(A)−base) mod 4096≦(x−base) mod 4096≦(VT(S)−1−base) mod 4096}
={x|(200−200) mod 4096≦(x−200) mod 4096≦(200−1−200) mod 4096}
={x|0≦(x−200) mod 4096≦4095}.
Since the SN=300 lies inside a set {x|0≦(x−200) mod 4096≦4095}, the prior art is unable to determine whether the status report unit comprises an erroneous SN, so an RLC reset procedure cannot be initiated. This leads to errors not being recovered and waste in wireless transmission resources.
To summarize, when an SN of a next PDU to be transmitted for a first time equals an SN of a next expected acknowledged PDU, which means that all PDUs transmitted by a transmitter are positively acknowledged, any negative acknowledgement of a PDU in a status report unit must be caused by a protocol error. However, the prior art is unable to detect errors as such, which leads to not initiating a reset procedure instantly, and causes waste in wireless resources.